The present invention relates to the field of data storage systems, and in particular to data storage systems employing internal file systems for storing storage object data.
Certain types of data storage systems employ internal file systems for storing the data of storage objects that are presented to external storage system users, such as applications executing on separate host computers, etc. In one example, a storage system stores a logical unit of storage or LUN as a file of an internal file system. The use of a file system can support a variety of value-added functionality, including for example point-in-time copying of LUNs to create snapshots or “snaps”. Snaps can be created as additional files of the file system, specifically by duplicating the primary file metadata for the LUN and pointing to now-shared copies of the blocks of the primary file. As the LUN continues to evolve during production operation, the primary file contents change by addition of new blocks and/or removal of blocks, and the storage system dynamically maintains both the file system metadata and the underlying data blocks to faithfully represent both the evolving LUN as well as any existing snaps. Both the primary file and the snap files may be subject to size reduction, referred to as “truncation”, as well as complete deletion. It will be appreciated that individual files may be quite large given that they store respective LUNs, each of which may have a size anywhere in a range from megabytes to gigabytes to terabytes and beyond.